package com.woniuxy.lab.woniu_lab_boss.model;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 靶场表
 * </p>
 *
 * @author Silas
 * @since 2023-03-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("lab_range")
public class Range implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 上传靶场的讲师ID
     */
    private Integer teacherId;

    /**
     * 靶场名称
     */
    private String name;

    /**
     * 文件类型 doker/war/zip/other (压缩包不能超过100M)
     */
    private String fileType;

    /**
     * 文件路径(防止名字冲突)
     */
    private String filePath;

    /**
     * 镜像id
     */
    private String imageId;

    /**
     * 镜像名称
     */
    private String imageName;

    /**
     * 难度(low/middle/high)
     */
    private String level;

    /**
     * 所属分类(扫描类、文件类、SQL注入类、XSS类、CSRF类、SSRF类、代码执行、命令执行、文件上传类、文件包含类、反序列化类、Redis类、内网渗透类)
     */
    private String rangeType;

    /**
     * 定价(蜗牛币)
     */
    private BigDecimal price;

    /**
     * 答案
     */
    private String flag;

    /**
     * 操作次数(防止作弊)
     */
    private Integer optCount;

    /**
     * 积分
     */
    private Integer score;

    /**
     * 状态（可用性）ENABLE/DISABLE
     */
    private String status;

    /**
     * 实验类型ctf/exper
     */
    private String ctfOrExper;

    /**
     * 实验名称
     */
    private String experName;

    /**
     * 实验简介(不能超过500字)
     */
    private String introduce;

    /**
     * 实验手册
     */
    private String manual;

    /**
     * 通关次数
     */
    private Integer passCount;

    /**
     * 启动次数
     */
    private Integer createCount;

    /**
     * 上传时间
     */
    private LocalDateTime uploadTime;

    /**
     * 实验封面地址
     */
    private String pic;

    // 内部端口
    private String port;

    // 内部卷路径
    private String path;
    //外部卷路径
    private String lPath;

    // uri
    private String uri;
}
